﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Noris.Tools.TraceVisualiser.Interface;
using Noris.Tools.TraceVisualiser.Support;
using Noris.Tools.TraceVisualiser.TraceData;
using Noris.Tools.TraceVisualiser.SqlParser;
using Noris.Tools.TraceVisualiser.Forms;

namespace Noris.Tools.TraceVisualiser.TraceData
{
    internal class Func_ShowDetail : Func_Base, IFunctionContextMenuItem
    {
		#region IPlugin Members
		/// <summary>
		/// Příznak, že Plugin je aktivní ve standardním běhu (tj. při běžném užiavtelském spuštění).
		/// Plně funkční pluginy tedy vrací true.
		/// Pluginy, které jsou ve vývoji, vrací false, takové jsou zobrazeny / spouštěny pouze v aplikaci, která běží v režimu Debug.
		/// </summary>
		bool IPlugin.Active { get { return true; } }
		#endregion
		#region IFunctionContextMenuItem Members
        bool IFunctionContextMenuItem.IsFunctionSuitableFor(FunctionContextMenuItemSuitableArgs args)
        {
			args.MenuItems.Add(new FunctionMenuItem(90, "Zobrazení detailů události", 
				"Zobrazí okno se všemi detaily vybraných událostí",
				true, Noris.Tools.TraceVisualiser.Pics.PicLibrary16.HelpAbout2_FromFile, null));
            return true;
        }
        bool IFunctionContextMenuItem.IsMenuItemEnabledFor(FunctionContextMenuItemRunArgs args)
        {
            List<IMasterDetails> nrsItems = this.GetInputDetails(args);
            return (nrsItems.Count > 0);
        }
        void IFunctionContextMenuItem.Run(FunctionContextMenuItemRunArgs args)
        {
            List<IMasterDetails> nrsItems = this.GetInputDetails(args);
            this.RunShowDetail(nrsItems);
        }
        #endregion
        #region Práce s eventy
        #endregion
    }
}
